using System.Collections.Generic;
using SDF.Core.Domain.Projects;

namespace SDF.Services.Projects
{
    /// <summary>
    /// Project service interface
    /// </summary>
    public partial interface IProjectService
    {
        /// <summary>
        /// Deletes a project
        /// </summary>
        /// <param name="project">Project</param>
        void DeleteProject(Project project);

        /// <summary>
        /// Gets all projects
        /// </summary>
        /// <returns>Projects</returns>
        IList<Project> GetAllProjects();

        /// <summary>
        /// Gets a project 
        /// </summary>
        /// <param name="projectId">Project identifier</param>
        /// <returns>Project</returns>
        Project GetProjectById(int projectId);

        /// <summary>
        /// Inserts a project
        /// </summary>
        /// <param name="project">Project</param>
        void InsertProject(Project project);

        /// <summary>
        /// Updates the project
        /// </summary>
        /// <param name="project">Project</param>
        void UpdateProject(Project project);
    }
}